[GAME-2] Acerte os rortões nas janelas (jogo com gráficos)
Publicado por Samuel Leonardo 26/11/2008
[ Hits: 5.951 ]
Homepage: https://nerdki.blogspot.com.br/
Download [GAME2]Acerte o Portões na Janela.tar.gz
Meu segundo script, um jogo simples que mostra como funciona a colisão nos jogos e como simular o tiro de um canhão.
É bem legal, vocês devem conferir!
Acompanha uma versão pré-compilada.
ATENÇÃO: É necessário antes ter os arquivos de desenvolvimento da libSDL instalados.
Para compilar: gcc -o game game.c -lSDL
Para rodar: ./game
/* # # ###desenvolvido por: Samuel Leonardo (Sam L.) EM 20/11/2008 #######Historico de desenvolvimento: ####### A idéia de fazer esse 'game' surgiu por falta do que fazer. :P ########### ############# ATENÇÃO -> USUÁRIOS DE WINDOWS, NÃO SE OFENDAM PELO QUE FIZ COM O ############# LOGO E O DESKTOP DESTE "escelêntiçimo e pherFEItiçimo çixtema" operacional, ############# ACONTECE QUE NÃO CONSEGUI RESISTIR A FAZER UMA PIADA. hehe!!! bricadeira!!! ####### # # ########BAIXE UM EXECELENTE APOSTILA SOBRE DESENVOLVIMENTO DE JOGOS COM SDL AQUI:######### ## http://silveira.wordpress.com/2006/09/21/apostila-de-desenvolvimento-de-jogos/ # ################################################################# */ #include <SDL/SDL.h> #include <SDL/SDL_image.h> int Colisao(SDL_Rect *a, SDL_Rect *b) { return (!((a->x > b->x + b->w)||(a->x + a->w < b->x)||(a->y > b->y + b->h)||(a->y + a->h < b->y))); } int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Surface *screen, *bala, *alvo[2], *efeito, *cannon, *obstaculo[2]; SDL_Rect destino,fonte[2], posicao; screen = SDL_SetVideoMode(800, 350, 0, SDL_SWSURFACE | SDL_HWSURFACE | SDL_ANYFORMAT); bala = SDL_LoadBMP("Imagens/cabeca.bmp"); alvo[0] = SDL_LoadBMP("Imagens/monitor.bmp"); alvo[1] = SDL_LoadBMP("Imagens/windows-vista-logo.bmp"); efeito = SDL_LoadBMP("Imagens/fumaca.bmp"); cannon = SDL_LoadBMP("Imagens/tux-canhao.bmp"); SDL_SetColorKey(cannon, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(cannon->format, 255, 255, 255)); destino = (SDL_Rect){40,240,20,20};//posição da bala fonte[0] = (SDL_Rect){600, 240,40,40};//posição do XP, obstaculo[0] fonte[1] = (SDL_Rect){700, 240,40,40};//posição do VISTA, obstaculo[1] posicao = (SDL_Rect){0,220,0,0}; //posição do canhão int fim = 0, i; // a bala tem aceleração e velocidade int velo = 0, acel = 1, atira = 0, acres_y = 4; SDL_Event evento; while(!fim) { Uint8 *teclado; SDL_PumpEvents(); teclado = SDL_GetKeyState(0); if(teclado[SDLK_ESCAPE]) fim = 1; if(teclado[SDLK_UP] && !atira) { posicao.y -= 10; destino.y = posicao.y + 20; } if(teclado[SDLK_DOWN] && !atira) { posicao.y += 10; destino.y = posicao.y + 20; } while(SDL_PollEvent(&evento)) if(evento.type == SDL_QUIT) fim =1; if(!atira) { if(teclado[SDLK_SPACE]) { velo = 10; atira = 1; } } if(atira) { velo = velo - acel; destino.y -= velo; destino.x += 30; for(i=0; i < 2;i++) if(Colisao(&destino,&fonte[i])) { SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,255,255,255)); atira = 0; destino.x = 40; destino.y = posicao.y + 20; SDL_BlitSurface(efeito, NULL, screen, &fonte[i]); SDL_Flip(screen); SDL_Delay(1500); } } if(destino.x > 700) { atira = 0; destino.x = 40; destino.y = posicao.y + 20; } if((fonte[0].y + fonte[0].h + acres_y > 350) || (fonte[0].y + acres_y < 0)) acres_y = -acres_y; fonte[0].y += acres_y; SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,255,255,255)); SDL_BlitSurface(bala, NULL, screen, &destino); SDL_BlitSurface(alvo[0], NULL, screen, &fonte[0]); SDL_BlitSurface(alvo[1], NULL, screen, &fonte[1]); SDL_BlitSurface(cannon, NULL, screen, &posicao); SDL_Flip(screen); SDL_Delay(60); } SDL_Quit(); return 0; }
1o. joguinho Labirinto (com graficos).c
Jantar dos Filósofos - Programação Paralela
Cálculo de logaritmo de um número por Método de Newton-Raphson em C
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (14)
Boot do PosRog so funciona em notebook (1)